#!/bin/bash

# 插件配置
PLUGIN_NAME="fengyun-plugin"
PLUGIN_URL="https://gitcode.com/fengyunnb_admin/fengyun-plugin.git"
TARGET_DIR="/root/XRK-Yunzai/plugins"
FULL_PATH="$TARGET_DIR/$PLUGIN_NAME"

# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 日志函数
log_info() {
    echo -e "${GREEN}[INFO]${NC} $1"
}

log_warn() {
    echo -e "${YELLOW}[WARN]${NC} $1"
}

log_error() {
    echo -e "${RED}[ERROR]${NC} $1"
}

# 检查目录是否存在
check_dir() {
    if [ ! -d "$TARGET_DIR" ]; then
        log_error "目标目录不存在: $TARGET_DIR"
        log_info "正在创建目录..."
        mkdir -p "$TARGET_DIR"
        if [ $? -ne 0 ]; then
            log_error "创建目录失败，请检查权限"
            exit 1
        fi
        log_info "目录创建成功"
    fi
}

# 检查是否已安装
check_installed() {
    if [ -d "$FULL_PATH" ]; then
        log_warn "检测到已安装的 $PLUGIN_NAME"
        return 0
    else
        log_info "未检测到已安装的 $PLUGIN_NAME"
        return 1
    fi
}

# 删除旧版本
remove_old_version() {
    log_info "正在删除旧版本..."
    rm -rf "$FULL_PATH"
    if [ $? -eq 0 ]; then
        log_info "旧版本删除成功"
    else
        log_error "删除失败，请检查权限"
        exit 1
    fi
}

# 安装新版本
install_new_version() {
    log_info "正在克隆 $PLUGIN_NAME..."
    cd "$TARGET_DIR"
    
    # 检查是否已安装git
    if ! command -v git &> /dev/null; then
        log_error "未找到git命令，请先安装git"
        exit 1
    fi
    
    # 克隆仓库
    git clone "$PLUGIN_URL" "$PLUGIN_NAME"
    
    if [ $? -eq 0 ]; then
        log_info "$PLUGIN_NAME 安装成功"
        
        # 进入插件目录检查是否有package.json
        if [ -f "$FULL_PATH/package.json" ]; then
            log_info "检测到package.json，正在安装依赖..."
            cd "$FULL_PATH"
            npm install
            if [ $? -eq 0 ]; then
                log_info "依赖安装完成"
            else
                log_warn "依赖安装可能有问题，请手动检查"
            fi
        fi
    else
        log_error "克隆失败，请检查网络连接和仓库地址"
        exit 1
    fi
}

# 主函数
main() {
    log_info "开始安装 $PLUGIN_NAME"
    log_info "目标路径: $FULL_PATH"
    
    # 检查并创建目录
    check_dir
    
    # 检查是否已安装
    if check_installed; then
        # 询问用户是否删除
        read -p "是否删除旧版本并重新安装? (y/n): " -n 1 -r
        echo
        if [[ $REPLY =~ ^[Yy]$ ]]; then
            remove_old_version
            install_new_version
        else
            log_info "已取消安装"
            exit 0
        fi
    else
        install_new_version
    fi
    
    log_info "安装完成!"
}

# 执行主函数
main